package com.dhcc.core.modules.msgcenter.entity;

import java.util.Date;
import java.util.Map;

import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.dhcc.core.framework.base.entity.BaseEntity;
import com.dhcc.core.framework.util.JsonUtil;
import com.dhcc.core.modules.system.entity.User;


/**
 * 消息
 * 
 * @ClassName: Msg
 * @Description: TODO
 * @author cyf
 * @date 2018-11-15 15:02:17
 */
@TableName("sys_msg") 
public class Msg extends BaseEntity<Msg> {
	private static final long serialVersionUID = 1L;

    //模块编码
    @TableField(exist = false)
    private MsgModule module;  
    //紧急程序
    private Integer importance;  
    //归属模块ID
    private Long moduleId;  
    //归属模块
    private String moduleName;  
	//标题
	private String msgTitle;	
	//消息内容
	private String msgContent;	
	//数据
	private String datas;	
	//接受者类型（0全体 1用户 2部门 3群组 4角色 5职务 ）
	private Integer receiveType;	
	//接受者字符串
	private Long receiveId;	
	//接受者名称字符串
	private String receiveName;	
	//发送者用户ID
	private Long sendUserId;	
	//发送者用户姓名
	private String sendUserName;	
	//发送时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date sendTime;	

	public Integer getImportance() {
        return importance;
    }
    public void setImportance(Integer importance) {
        this.importance = importance;
    }
    /**
	 * 设置：归属模块ID
	 */
	public void setModuleId(Long moduleId) {
		this.moduleId = moduleId;
	}
	/**
	 * 获取：归属模块ID
	 */
	public Long getModuleId() {
		return moduleId;
	}
	/**
	 * 设置：标题
	 */
	public void setMsgTitle(String msgTitle) {
		this.msgTitle = msgTitle;
	}
	/**
	 * 获取：标题
	 */
	public String getMsgTitle() {
		return msgTitle;
	}
	/**
	 * 设置：消息内容
	 */
	public void setMsgContent(String msgContent) {
		this.msgContent = msgContent;
	}
	/**
	 * 获取：消息内容
	 */
	public String getMsgContent() {
		return msgContent;
	}
    /**
     * 设置：数据
     */
    public void setDatas(String datas) {
        this.datas = datas;
    }
    /**
     * 获取：数据
     */
    public String getDatas() {
        return datas;
    }
    /**
     * 设置：数据
     */
    public void setDataMap(Map<String,Object> map) {
        this.datas = JsonUtil.toJson(map);
    }
    /**
     * 获取：数据
     */
    public Map<String,Object> getDataMap() {
        return JsonUtil.jsonToMap(this.datas);
    }
	/**
	 * 设置：接受者类型（0全体 1用户 2部门 3群组 4角色 5职务 ）
	 */
	public void setReceiveType(Integer receiveType) {
		this.receiveType = receiveType;
	}
	/**
	 * 获取：接受者类型（0全体 1用户 2部门 3群组 4角色 5职务 ）
	 */
	public Integer getReceiveType() {
		return receiveType;
	}
    /**
     * 设置：接受者字符串
     */
    public void setReceiveId(Long receiveId) {
        this.receiveId = receiveId;
    }
	/**
	 * 获取：接受者字符串
	 */
	public Long getReceiveId() {
		return receiveId;
	}
	/**
	 * 设置：接受者名称字符串
	 */
	public void setReceiveName(String receiveName) {
		this.receiveName = receiveName;
	}
	/**
	 * 获取：接受者名称字符串
	 */
	public String getReceiveName() {
		return receiveName;
	}
	/**
	 * 设置：发送者用户ID
	 */
	public void setSendUserId(Long sendUserId) {
		this.sendUserId = sendUserId;
	}
	/**
	 * 获取：发送者用户ID
	 */
	public Long getSendUserId() {
		return sendUserId;
	}
	/**
	 * 设置：发送者用户姓名
	 */
	public void setSendUserName(String sendUserName) {
		this.sendUserName = sendUserName;
	}
	/**
	 * 获取：发送者用户姓名
	 */
	public String getSendUserName() {
		return sendUserName;
	}
	/**
	 * 设置：发送时间
	 */
	public void setSendTime(Date sendTime) {
		this.sendTime = sendTime;
	}
	/**
	 * 获取：发送时间
	 */
	public Date getSendTime() {
		return sendTime;
	}
    public String getModuleName() {
        return moduleName;
    }
    public void setModuleName(String moduleName) {
        this.moduleName = moduleName;
    }
    public MsgModule getModule() {
        return module;
    }
    public void setModule(MsgModule module) {
        this.moduleId = module.getId();
        this.module = module;
    }
    public void setSendUser(User sendUser) {
        this.sendUserId = sendUser.getId();
        this.sendUserName = sendUser.getName();
    }
}
